<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">

    <body>
        <ui:composition template="../templateAdministracion/template.xhtml">
            <ui:define name="content">
                <h:form id="formularioCreacionUsuariosID" styleClass="form" >
                    <p:growl autoUpdate="true" />
                    <h:panelGrid columns="2" styleClass="panelGridAnchoTotal">
                        <p  class="facet"> Creacion de Usuarios </p>
                        <p:commandButton value="Crear"  update=":formularioCreacionUsuariosID" 
                                         action="#{creacionUsuarioControlador.crearNuevaEntidad()}"
                                         process="@this" icon="ui-icon-plus"
                                         styleClass="comandButtonConMarginRight">
                            <f:setPropertyActionListener target="#{creacionUsuarioDataManager.editar}"
                                                         value="#{false}"/>
                            <f:setPropertyActionListener target="#{creacionUsuarioDataManager.mostrarPanelCreacion}"
                                                         value="#{true}"/>
                        </p:commandButton> 
                    </h:panelGrid>
                    <p:dataTable value="#{creacionUsuarioControlador.obtenerEntidades()}" 
                                 var="usuario"
                                 paginator="true"
                                 rows="5"
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >
                        <p:column headerText="Username">
                            <h:outputText value="#{usuario.username}"/>  
                        </p:column>
                        <p:column headerText="Editar">
                            <p:commandLink value="Seleccionar" 
                                           process="@this" 
                                           update=":formularioCreacionUsuariosID"
                                           action="#{creacionUsuarioControlador.consultarPerfil}">
                                <f:setPropertyActionListener target="#{creacionUsuarioDataManager.entidadSeleccionada}"
                                                             value="#{usuario}"/>
                                <f:setPropertyActionListener target="#{creacionUsuarioDataManager.editar}"
                                                             value="#{true}"/>
                                <f:setPropertyActionListener target="#{creacionUsuarioDataManager.mostrarPanelCreacion}"
                                                             value="#{true}"/>
                            </p:commandLink>
                        </p:column>
                    </p:dataTable>
                    <p:separator />
                    <p:panel id="panelEdicionUsuarioID" rendered="#{creacionUsuarioDataManager.mostrarPanelCreacion}"
                             styleClass="panel" header="Creacion / Edicion">
                        <h:panelGrid columns="2">
                            <h:outputLabel value="Código"/>
                            <h:inputText id="inputTextCodigoID" value="#{creacionUsuarioDataManager.entidadSeleccionada.codigoUsuario}" 
                                         readonly="true" styleClass="inputTextDehabilitado"/>

                            <h:outputLabel value="Username:"/>
                            <h:inputText value="#{creacionUsuarioDataManager.entidadSeleccionada.username}" required="true" 
                                         requiredMessage="Username obligatorio" styleClass="inputText"/>

                            <h:outputLabel value="Password:"/>
                            <p:password value="#{creacionUsuarioDataManager.entidadSeleccionada.password}" required="true" 
                                        requiredMessage="Password obligatorio" styleClass="inputText"/>
                            <h:outputLabel value="Estado:"/>
                            <p:selectOneMenu value="#{creacionUsuarioDataManager.entidadSeleccionada.estado}" 
                                             styleClass="selectOneMenu"
                                             style="width: 150px;margin: 3px; border-radius: 5px" 
                                             required="true" requiredMessage="Estado Obligatorio">  
                                <f:selectItems value="#{creacionUsuarioControlador.estado}" />
                            </p:selectOneMenu>
                            
                            <h:outputLabel value="Provincia:" styleClass="outPutLabel"/>
                            <p:selectOneMenu value="#{creacionUsuarioDataManager.divisionGeograficaNivelUno}" 
                                             styleClass="selectOneMenu" required="true" requiredMessage="Provincia Obligatoria">  
                                <f:selectItems value="#{creacionUsuarioControlador.divisionGeograficaNivelUno}" />
                                <f:converter converterId="divisionGeograficaConvertidor"/>
                                <p:ajax event="change" 
                                        update="listaDivGeograficaNivelDosID listaDivGeograficaNivelTresID" 
                                        listener="#{creacionUsuarioControlador.seleccionarDivisionNivelUno}"/>
                            </p:selectOneMenu>
                            
                            <h:outputLabel value="Canton:" styleClass="outPutLabel"/>
                            <p:selectOneMenu id="listaDivGeograficaNivelDosID" value="#{creacionUsuarioDataManager.divisionGeograficaNivelDos}" 
                                             styleClass="selectOneMenu" required="true" requiredMessage="Canton Obligatorio">  
                                <f:selectItems value="#{creacionUsuarioControlador.divisionGeograficaNivelDos}" />
                                <f:converter converterId="divisionGeograficaConvertidor"/>
                                <p:ajax event="change" update="listaDivGeograficaNivelTresID"/>
                            </p:selectOneMenu>
                            
                            <h:outputLabel value="Parroquia:" styleClass="outPutLabel"/>
                            <p:selectOneMenu id="listaDivGeograficaNivelTresID" value="#{creacionUsuarioDataManager.divisionGeograficaNivelTres}" 
                                             styleClass="selectOneMenu" required="true" requiredMessage="Parroquia Obligatoria">  
                                <f:selectItems value="#{creacionUsuarioControlador.divisionGeograficaNivelTres}" />
                                <f:converter converterId="divisionGeograficaConvertidor"/>
                                <p:ajax event="change" listener="#{creacionUsuarioControlador.seleccionarDivisionNivelTres}"/>
                            </p:selectOneMenu>
                        </h:panelGrid>

                        <h:panelGrid columns="1"  styleClass="panelGridAnchoTotal">
                            <table>
                                <ui:repeat value="#{creacionUsuarioDataManager.listaPerfilUtil}" var="perfilUtil"  >
                                    <tr>
                                        <td><h:outputLabel value="#{perfilUtil.rol.nombre}:" style="width: 30%;margin-right: 10px;"/></td>
                                        <td><p:selectBooleanCheckbox value="#{perfilUtil.seleccionado}" style="width: 15%"/></td>
                                    </tr>
                                </ui:repeat> 
                            </table>
                        </h:panelGrid>
                        <h:panelGrid columns="2" cellspacing="5">
                            <p:commandButton value="Crear" action="#{creacionUsuarioControlador.guardarEntidad()}"
                                             update=":formularioCreacionUsuariosID" rendered="#{!creacionUsuarioDataManager.editar}"
                                             icon="ui-icon-disk" styleClass="comandButton"/>
                            <p:commandButton value="Editar" action="#{creacionUsuarioControlador.editarEntidad()}"
                                             update=":formularioCreacionUsuariosID" rendered="#{creacionUsuarioDataManager.editar}"
                                             icon="ui-icon-disk" styleClass="comandButton"/>
                            <p:commandButton value="Cancelar" action="#{creacionUsuarioControlador.crearNuevaEntidad()}"
                                             update=":formularioCreacionUsuariosID" 
                                             icon="ui-icon-circle-close" process="@this" styleClass="comandButton">
                                <f:setPropertyActionListener target="#{creacionUsuarioDataManager.editar}"
                                                             value="#{false}"/>
                                <f:setPropertyActionListener target="#{creacionUsuarioDataManager.mostrarPanelCreacion}"
                                                             value="#{false}"/>
                            </p:commandButton>  

                        </h:panelGrid>
                    </p:panel>

                </h:form> 
            </ui:define>
        </ui:composition>
    </body>
</html>